Source:
https://github.com/Sejoslaw/VanillaMagic/tree/master/VanillaMagic/src/main/resources


Basic template:

{
	"questClass":"",
	"requiredQuest":"",
	"posX":,
	"posY":,
	"icon":
	{
		"id":,
		"stackSize":,	default: 1
		"meta":		default: 0
	},
	"questName":"",
	"uniqueName":""
}



What is what:

questClass - It MUST be a full path to some kind of Quest class. For instance: "seia.vanillamagic.quest.QuestCraft". I assume that You don't know these strings so please look carefuly at the default config.

requiredQuest - a "uniqueName" of the Quest that should be achieved before this Quest will be available. For instance: for "Portable Crafting Table" it will be "craftStick".

posX - Position on the X coordinate of the achievement. If "requiredQuest" is not empty, than it will be the X position from the "requiredQuest". It's something like that:
this.posX = requiredQuest.posX + value
If "requiredQuest" is empty than:
this.posX = 0 + value
For instance: for "Portable Crafting Table" it will be:
this.posX = "craftStick".posX + (-2) = 0 + (-2) = -2

posY - Similar to posX
For instance: for "Portable Crafting Table" it will be:
this.posY = "craftStick".posY + 0 = 6 + 0 = 6

icon - As You probably see it it different from the others. That is because it is the ItemStack. ItemStack needs 3 things: item / block ID, size of the stack and metadata of the item.
For instance: for "Craft Stick" I could write:
"icon":
{
	"id":280,
	"stackSize":1,
	"meta":0
}
OR shortly
"icon":
{
	"id":280
}

questName - name of the Quest. For instance: "Portable Crafting Table".

uniqueName - the unique name that MUST be different for each Quest. For instance: for "Craft Stick" it is simply "craftStick" but for "Feel like Blaze" it is "spellSmallFireball".


Which other aliases You may find ?


spellID - the unique value for each spell.

ingredients - an ItemStack array of items needed for crafting.

result - an ItemStack array of items that will be created when the crafting is finished.

requiredAltarTier - tier which Altar should have for doing stuff.

wandTier - it may be confusing but it is the unique value of the Wand:
Stick - 1
Blaze Rod - 2
Nether Star - 3
End Rod - 4

tier - Altar tier

mustHaveMainHand / mustHaveOffHand - the ItemStack which should Player hold in the selected hand when activating machine.

radius - radius on which Quest / Machine can operate.

whatToPick - the ItemStack which Player should pick from the ground.

requiredStackOffHand - similar to "mustHaveOffHand" but used more common for spells.

blocksToBeMine OR (blocksToBeMineClass AND blocksToBeMineList) - this is basically two posibilities for giving the lists. For instance:
1)
blocksToBeMine - should be created as a list of Block IDs
2) "blocksToBeMineClass":"seia.vanillamagic.integration.CustomOre",
"blocksToBeMineList":"customOreDiamond"